package testPackage.testPackage;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.edge.EdgeDriver;
import org.testng.Assert;
import org.testng.annotations.Test;

import java.util.concurrent.TimeUnit;

/**
 * step by step 01 简介
 * 是一种广泛使用的测试框架，支持从单元到自动化功能测试的所有级别测试。
 * 受Junit启发的测试框架，提供了多种功能，如数据驱动的测试、参数化支持、不同的实用程序注释、
 * 测试用例分组等。
 * 特点：
 * 1、不同类型的断言 -Assert类，提供支持不同类型断言的多种方法
 * 2、运行并行测试 -使用testNG.xml文件
 * 3、使测试互相依赖 -@test标注
 * 4、确定测试的优先级 用数字分配优先级，默认为0
 * 5、测试分组
 * 6、数据驱动测试 -使用@DataProvider
 * 7、报告
 * 8、参数化 -@Parameters批注为参数化提供固有的支持
 */
public class Testng01 {
    /**
     * 小实验：测试Google计算器功能
     * 1、Selenium WebDriver -用于UI自动化
     * 2、TestNG -作为测试框架
     * 3、Java -作为编程语言
     */
    @Test
    public void googleCalculator(){
        WebDriver driver;
        String str = "D:\\Enviroments\\geckodriver-v0.26.0-win64\\geckodriver.exe";
        System.setProperty("webdriver.edge.marionette", str);
         driver = new EdgeDriver();
         //打开网页
//        driver.get("http://www.zxjsq.net/");
        driver.get("http://www.ab126.com/");
        //driver.get("chrome://apps/");
        //driver.findElement(By.className("title launch-click-target")).click();
        //等待3s
        driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        ////*[@id="cwmcwd"]/div/div/div[1]/div[2]/div[2]/div/div
        //在文本框中输入“2 + 2”
//        driver.findElement(By.id("simple2")).click();
//        driver.manage().timeouts().implicitlyWait(6, TimeUnit.SECONDS);
//        driver.findElement(By.id("simpleAdd")).click();
//        driver.manage().timeouts().implicitlyWait(6, TimeUnit.SECONDS);
//        driver.findElement(By.id("simple2")).click();
//        driver.manage().timeouts().implicitlyWait(6, TimeUnit.SECONDS);
        WebElement webElement = driver.findElement(By.name("zadatak"));
        webElement.sendKeys("2+2");
        //单击等于按钮
        WebElement searchButton = driver.findElement(By.name("enter"));
        searchButton.click();
        driver.manage().timeouts().implicitlyWait(6, TimeUnit.SECONDS);
        //获取计算结果
        WebElement resultTextBox = driver.findElement(By.name("rezultat"));
        String result = resultTextBox.getText();
        ////*[@id="1"]/div/div/div/div/div[1]/p[2]/span
        System.out.println(resultTextBox.toString());
        System.out.println("result:"+result);
        //验证答案
        Assert.assertEquals(result,"4");


    }


}
